深度学习中的时间序列分类方法综述
为了对时间序列数据进行准确分类,人们已经提出了数百种方法来解决此任务。最传统的方法是使用某种距离测度的最近邻(NN)分类器方法。特别地,使用动态时间规整(DTW)距离的NN分类器被视为表现优秀的基准方法。
近期的一些研究集中在开发显著优于NN-DTW的分类方法。在这种思路下,Bagnall等(2016)提出了集成35个分类器的COTE方法(Collective Of Transformation-based Ensembles),Lines等(2018)在COTE基础上增加了分层投票系统,提出了HIVE-COTE方法,让分类效果得到进一步明显改善。
但是,HIVE-COTE需要训练37个分类器并对其中大量超参数进行交叉验证调参,由此带来的计算量使其很难应用在处理大规模数据挖掘问题上。而且,由37个分类器得到的决策的可解释性也变得很差,以至于很难被相关领域专家解读。
近年来深度学习在各种分类任务中的成功推动了其在时间序列分类中的应用。深度卷积神经网络(CNN)在计算机视觉图像识别、自然语言处理(NLP)、语音识别等领域都有不俗的表现。而NLP和语音识别任务用到的数据是有序的,这也同样是时间序列数据的重要特征。Fawaz H I等人于2019年发表了《Deep learning for time series classification: a review》文章,里面对基于深度学习的时间序列分类方法进行了综述。该文章主要试图回答以下几个问题:
当下处理 TSC 问题最前沿的 DNN 方法是什么? 目前有没有一种 DNN 方法能达到 HIVE-COTE 差不多的效果,且没有那么复杂? 什么样的 DNN 框架最适合 TSC 问题? 能否避免 DNN 方法的黑箱效应,提高方法的可解释性?
文章对TSC的最新深度学习方法进行了实证比较研究,并将展示在GPU的加持下,如何更有效地训练深度学习模型,以端到端的方式从原始时间序列中学习隐藏的判别特征。除了对单变量数据集进行测试外,文章还在12个多变量时间序列(Multivariate Time Series, MTS)数据集上进行测试评估,从而更好地展示深度学习模型在处理维度灾难问题上的优势。
背景知识
时间序列分类
首先定义时间序列分类问题,给出如下定义。
TSC的深度学习框架
生成模型和判别模型
处理时间序列分类问题的深度学习方法可以分为两大类:生成模型和判别模型。进一步可以将这两个大类分成很多小类(如下图所示)。
生成模型(Generative models)通常表现出在分类器学习阶段之前的无监督训练步骤。这种类型的网络在TSC社区中被称为基于模型的分类器。其中一些生成式非深度学习方法包括自回归模型,隐马尔可夫模型。对于所有生成方法,目标是在训练分类器之前找到时间序列的良好表示。通常,为了对时间序列建模,分类器的训练依赖于无监督的预训练阶段,例如堆叠式降噪自动编码器(SDAE)。
不同于生成模型,判别模型(Discriminative models)直接学习输入的时间序列(或者是提取的特征)和概率分布输出之间的映射。这种类型的模型可以进一步细分为两类:带特征提取的深度学习模型和端到端深度学习模型。
人工特征提取最常见的受计算机视觉启发的方法,是使用特定成像方法将时间序列转换为图像的方法,例如Gramian域递归图和Markov转换场。不同于图像转换的方法,其他的特征提取的方法会用到相关领域的知识。首先利用相关领域的知识设计一些特征,然后再将这些提取到的特征作为深度学习的判别分类器的输入进行输出。例如在Uemura等(2018),从放置在外科医生手上的传感器数据中提取了一些特征(例如速度),以确定外科手术训练期间的技能水平。
而与带特征提取的深度学习模型相反,端到端深度学习将特征提取的过程直接纳入到训练判别分类器的过程中,即在学习过程中不进行单独的特征提取过程,直接学习输入的时间序列,优化判别分类器的分类效果。
至此,文章中已经介绍了用于时间序列分类的深度学习方法的分类,接下来将介绍几种具体的方法,并解释选取这些算法来进行试验的动机。
模型
首先作者选择了九个端到端的判别模型,选择判别模型而没有选择前文中提到的生成模型的主要原因如下:
(1)生成模型主要用于分类以外的任务或是作为一个更大分类模型的一部分
(2)以往文献中约定俗成:生成模型不如判别模型准确
(3)生成模型的实现和训练比判别模型更加复杂
(4)生成模型的准确度很大程度上依赖于之后选择的分类器,甚至有的分类器不是神经网络模型
其次选择选择端到端模型的原因是:深度学习方法的准确性高度依赖于数据特征提取的质量,而作者认为深度学习方法的主要目标就是为了消除人工设计特征提取方法而产生的偏差,使网络自身能学习到对分类任务最有用的特征。下面具体介绍每个模型。
多层感知机(Wang et al. 2017b)
全卷积神经网络FCN(Wang et al. 2017b)
该模型有三个卷积块,其中每个卷积块由卷积核、batch normalization和Relu激活函数组成,filter的数量分别为128、256和128,filter size分别为8、5、3,最后经过一个Global Average Pooling层和softmax处理得到分类结果。由于该模型的参数设置与输入数据的长度无关,故可以实现迁移学习:即在一个大数据集上进行预训练,然后根据详细问题在具体小数据集进行微调。
残差网络(Wang et al. 2017b)
Wang等人提出的第三个也是最后一个建议的体系结构是一个相对较深的残留网络(ResNet)。对于TSC而言,这是最深的体系结构,具有11层,其中前9层是卷积,其后是GAP层,该层对时间维度上的时间序列求平均。ResNet的主要特征是连续卷积层之间的残差连接。实际上,与常规卷积的主要区别在于,通过残差的直接连接大大减少了深度学习模型训练中的梯度消失问题。该网络由三个残差块、一个GAP层和一个最终的softmax分类器组成,每个残差块由三个卷积层组成,所有卷积的滤波器数量固定为64。在每个残差块中,第一次,第二次和第三次卷积的滤波器长度分别设置为8、5和3。同样也可以很容易地实现迁移学习。
Encoder(Serrà et al. 2018)
多尺度卷积神经网络(Cui et al. 2016)
Time LE-Net(Le Guennec et al. 2016)
该模型比较简单,对于两个卷积,都使用ReLU激活函数,滤波器长度等于5。第一次卷积使用5个滤波器,然后经过大小为2的最大池化。第二次卷积使用20个滤波器,然后经过大小为4的最大池化。因此,对于长度为t的输入时间序列,这两个卷积的结果输出将时间序列的长度除以8 = 4×2。卷积块后面是一个全连接层,该层由500个神经元组成,每个神经元都使用ReLU激活功能。与FCN的主要区别在:卷积中加入了局部Max-Pooling改变数据在时间上的长度;最后直接将卷积结果合并成一个很长的向量过全连接层和softmax。这样做会增加模型中参数的数量,且最后全连接层参数数量与输入时间序列的长度有关,故只有前面的卷积层支持迁移学习。还有一点值得关注的是它使用了两种数据增强的方法。
多通道深度卷积神经网络(Zheng et al. 2014, 2016)
该模型中,输入的每个维度将经过两个卷积层,其中有8个长度为5的滤波器,ReLU作为激活函数。每个卷积之后都有一个长度为2的最大池化操作。所有维度的第二个卷积阶段的输出将被串联到一起,然后连接到732个神经元的全连接层,用ReLU作为激活函数。最后经过一个softmax层输出分类解果。该模型实际上就是对多维时序数据的每一个维度进行独立的卷积池化操作。
时间卷积神经网络(Zhao et al. 2017)
该网络由两个分别具有6和12个滤波器的连续卷积层组成,然后进行长度为3的局部平均池化操作。卷积采用sigmoidas激活函数。它的主要不同在于:最后没有使用softmax+交叉熵损失,而是sigmoid+MSE损失;使用了局部Average Pooling;最大的不同是对输入的多个维度同时进行卷积,以及将最后的卷积输出拼接成一个大的向量直接连接最后一层的分类器,比前面的网络少一层全连接层或全局Pooling层,减少了模型中参数的数量。
Time warping invariant echo state network(Tanisaro et al. 2016)
隐层中的神经元:
输出层:
实验与可视化
文章中实验所用的单变量时间序列数据集总共85个,均来自UCR/UEA档案(https://www.cs.ucr.edu/~eamonn/time_series_data/)。多变量时间序列数据集总共12个,来自Baydogan档案(https://www.mustafabaydogan.com)。
在实验设置方面,该文在97个数据集(85个单变量数据集,12个多变量数据集)上,对9个模型分别进行10次运行。每次使用相同的训练集、测试集划分。每次随机初始化权重,以便得到平均精确度降低权重初始值造成的偏差,使用测试集上的10次运行的平均准确度表示方法模型的精确度。采用Friedman检验检验9个模型之间是否存在显著差异。使用pairwise post-hoc分析进行带有Holm's alpha(5%)校正的Wilcoxon 符号秩检验,为可视化这类比较方法,使用Demsar(2006)提出的临界差图。在与Bangnall et al.(2017)中公布的最新结果相比较时,使用测试误差的中位数。
单变量时间序列数据集上的结果
上图中数轴表示模型的平均秩,越靠前说明该模型在所有数据集中的平均准确度最高。由黑色横线相连的两个模型表示它们之间不存在显著差异。可以看出ResNet显著优于其他方法,平均排名接近2。MCNN和t-LeNet准确度最低,只在一个数据集上最好;这两种方法均是采用提取子序列来增加训练数据,表明这种时间序列切片的方法不能保证时间序列间的辨别信息不丢失;MCDCNN和Time-CNN准确度较低可能是由于算法中用非线性的FC层取代了性能最好算法(FCN和ResNet)中的GAP池化层,降低了时间不变性特征的效果;Encoder在统计测试上与FCN和ResNet存在显著差异,表明GAP池化层比Encoder的attention机制具有优越性。
多变量时间序列数据集上的结果
由于多变量时间序列数据集数量较少,所以9种分类器之间并没有显著差异。因此该文选择将单、多变量时间序列数据集合并。合并数据集后的检验结果与单变量时间序列数据集上的结果基本相同。仍然是ResNet和FCN占主导地位。文中还进一步给出了最优架构下各种估计方法的排名情况。详细结果不再具体展示,总体来说,在不同的数据集特征下,ResNet和FCN仍占主导地位,ResNet性能基本上是最好的。
时间序列可视化
利用数学表达式表示CAM过程如下式所示:
以上都是CAM在图像分类领域的应用,下面将介绍CAM在时间序列分类领域的应用。在论文《Time series classification from scratch with deep neural networks: A strong baseline》中,作者将CAM应用到了时间序列分类领域。
最后总结一下,在该文章中,作者提出了针对TSC的DNN的最大的经验研究。描述了TSC在人类活动识别和睡眠阶段识别等许多不同领域中最新的成功深度学习方法。在统一的分类法下,解释了如何将DNN分为生成模型和判别模型两大类。在一个独特的框架中重新实现了九个最近发布的端到端深度学习分类器,并向社区公开提供了该分类器。结果表明,端到端深度学习可以使用FullyConvolutional神经网络和深度残差网络等架构实现TSC的当前最新性能。最后展示了如何通过Class Activation Map可视化来缓解深层模型的黑盒效应,该可视化突出显示了输入时间序列的哪些部分对特定类的识别贡献最大。
参考文献
[1] Zhou B , Khosla A , Lapedriza A , et al. Learning Deep Features for Discriminative Localization[C]// CVPR. IEEE Computer Society, 2016.
[2] Bagnall A, Lines J, Hills J, Bostrom A (2016) Time-series classification with COTE: the collective of transformation-based ensembles. In: International conference on data engineering, pp 1548–1549
[3] Lines J, Taylor S, Bagnall A (2018) Time series classification with HIVE-COTE: the hierarchical vote collective of transformation-based ensembles. ACM Trans Knowl Discov Data 12(5):52:1–52:35
[4] Wang Z, Yan W, Oates T (2017b) Time series classification from scratch with deep neural networks: astrong baseline. In: International joint conference on neural networks, pp 1578–1585
[5] Uemura M, Tomikawa M, Miao T, Souzaki R, Ieiri S, Akahoshi T, Lefor AK, Hashizume M (2018) Feasibility of an AI-based measure of the hand motions of expert and novice surgeons. Comput Math Methods Med 2018:9873273
[6] Serrà J, Pascual S, Karatzoglou A (2018) Towards a universal neural network encoder for time series. ArtifIntell Res Dev Curr Chall New Trends Appl 308:120
[7] Cui Z, Chen W, Chen Y (2016) Multi-scale convolutional neural networks for time series classification.
[8] Le Guennec A, Malinowski S, Tavenard R (2016) Data augmentation for time series classification using convolutional neural networks. In: ECML/PKDD workshop on advanced analytics and learning on temporal data
[9] Zheng Y, Liu Q, Chen E, Ge Y, Zhao JL (2014) Time series classification using multi-channels deep convolutional neural networks. In: Web-age information management, pp 298–310
[10] Zhao B, Lu H, Chen S, Liu J, Wu D (2017) Convolutional neural networks for time series classification. Syst Eng Electron 28(1):162–169
[11] Tanisaro P, Heidemann G (2016) Time series classification using time warping invariant echo state networks. In: IEEE international conference on machine learning and applications, pp 831–836
[12] Wang Z , Yan W , Oates T . Time Series Classification from Scratch with Deep Neural Networks: A Strong Baseline[J]. IEEE, 2016.
[13] Fawaz H I , Forestier G , Weber J , et al. Deep learning for time series classification: a review[J]. Data Mining and Knowledge Discovery, 2019, 33(4):917-963.
- END -团队成员: 李鑫,朱立奥,邹雨龙,曾柏林